package com.cskaoyan.javase.string.api3.get2;

/**
 * @description: 字符串的获取功能
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/
// 每天任务：打开B站 关闭B站 打开浏览器 学习知识
/**
 * // 获取当前字符串对象中，包含的字符个数
 * int  length()
 *
 * //获取字符串对象代表字符序列中，指定位置的字符
 * char charAt(int index)
 *
 * //在当前字符串对象中查找指定的字符，如果找到就返回字符，首次出现的位置，如果没找到返回-1
 * //也可以填字符
 * int indexOf(int ch)
 *
 * //指定从当前字符串对象的指定位置开始，查找首次出现的指定字符的位置，(如果没找到返回-1)
 * //可以填入字符
 * int indexOf(int ch,int fromIndex)
 *
 * //查找当前字符串中，目标字符串首次出现的位置(如果包含)，找不到，返回-1
 * //这里的位置是指目标字符串的第一个字符,在当前字符串对象中的位置
 * int indexOf(String str)
 *
 * //指定，从当前字符串对象的指定位置开始,查找首次出现的指定字符串的位置(如果没找到返回-1)
 * //这里的位置是指目标字符串的第一个字符,在当前字符串对象中的位置
 * int indexOf(String str,int fromIndex) ，
 *
 * //返回字符串，该字符串只包含当前字符串中，从指定位置开始(包含指定位置字符)到结束的那部分字符串
 * String substring(int start)
 *
 * //返回字符串，只包含当前字符串中，从start位置开始(包含)，到end(不包含)指定的位置的字符串
 * String substring(int start,int end)
 *
 */
public class Demo {
    public static void main(String[] args) {
        //int  length()
        //和数组中的length比较
        //数组中数组的长度是一个属性,而获取字符串的长度是一个方法
        String s = "";
        System.out.println(s.length());

        //charAt
        //获取字符串对象代表字符序列中，指定位置的字符
        String s2 = "hello";
        System.out.println(s2.charAt(3));

        //int indexOf(int ch)
        //在当前字符串对象中查找指定的字符，如果找到就返回字符，首次出现的位置，如果没找到返回-1
        System.out.println("abcaa".indexOf(97));
        System.out.println("aabba".lastIndexOf('a'));
        //int indexOf(String str,int fromIndex)
        //指定从哪里开始找这个元素
        System.out.println("aaabbaa".indexOf('a',4));

        //substring 裁剪字符串
        //String substring(int start)
        //从start位置开始,后面的都要
        System.out.println("123".substring(3));

        //String substring(int start,int end)
        //从start开始 到end结束
        //这个区间是前闭后开的 包括start 但是不包括end
        System.out.println("hello world".substring(0,5));
        //JDK当中所有这种带区间的方法,官方提供的,
        //一律是左闭右开 [) 左边包括 右边不包括
    }
}

